Skip to content

perf(render): encode primitive fingerprints without strings#63

Closed
TypeThe0ry wants to merge 1 commit into
devfrom
codex/perf-region-primitives
Closed

perf(render): encode primitive fingerprints without strings#63
TypeThe0ry wants to merge 1 commit into
devfrom
codex/perf-region-primitives

Conversation

@TypeThe0ry

Copy link
Copy Markdown
Member

What changed

  • specialize the private region fingerprint builder for boolean, char, int, and long
  • encode signed decimal digits directly into the existing FNV stream without boxing, temporary numeric strings, or arrays
  • preserve the existing : separators and exact Objects.toString(value, "") character contract, including zero and all MIN/MAX boundaries
  • add a focused independent-reference regression test for the complete primitive sequence

Why

A full table render computes hundreds of region/tile fingerprints. Primitive fields currently box and materialize temporary decimal strings before each per-character FNV pass. The new encoder packs reverse decimal digits into two local longs, then emits them in the original order; it handles Long.MIN_VALUE in the negative domain to avoid overflow.

This deliberately does not use the behavior-changing type-marker/binary encoding from the dirty development tree.

Validation

No Gradle, JMH, test, or server workload was run locally. GitHub Build/Test is the functional gate. This PR remains draft and must not merge until #60 and the base-owned region profile in #62 land, then #62's independent exact-FNV oracle and time/allocation A/B must report PASS_OPTIMIZED.

@Arbousier1
Arbousier1 force-pushed the codex/perf-region-primitives branch from b330197 to 3c4230c Compare July 16, 2026 05:52
@TypeThe0ry TypeThe0ry added performance-ab Run the base-owned paired performance gate performance-region-fingerprint Use the table region fingerprint performance profile labels Jul 16, 2026 — with ChatGPT Codex Connector

Copy link
Copy Markdown
Member Author

Trusted performance decision

GitHub A/B run 29475469884 completed the A/A drift control and all 8 interleaved AB/BA pairs, but the formal decision is INCONCLUSIVE_NOISE_OR_NO_GAIN.

Functional Build/Test are green and the trusted infrastructure completed normally. The measured result did not clear the optimization threshold, so this candidate will not be merged or described as an optimization.

Decision artifact: 8366863618; digest: sha256:2a3e4fca02aa3bcc4c3c5941343f123ce984b4caafad885048c9a01e2dd65e6a.

@TypeThe0ry TypeThe0ry removed the performance-ab Run the base-owned paired performance gate label Jul 16, 2026

Copy link
Copy Markdown
Member Author

Final paired A/B result: rejected

Formal decision: INCONCLUSIVE_NOISE_OR_NO_GAIN (artifact 8366863618). The candidate is not eligible to merge.

  • precompute.time: median -1.03734%, 95% CI [-7.94033%, +2.35916%], 3/8 wins.
  • precompute.alloc: median +5.66897%, 95% CI [+5.66867%, +22.0211%].
  • tiles.time: median -15.0667%, 95% CI [-16.0239%, -14.0156%], 0/8 wins — regression.
  • tiles.alloc: median +705.662%, 95% CI [+705.660%, +705.662%] — severe regression.

The A/A calibration also detected drift in the precompute sub-profile, but the tiles regression is large and directionally consistent on its own. Closing without merge.

@TypeThe0ry TypeThe0ry closed this Jul 16, 2026
@Arbousier1
Arbousier1 deleted the codex/perf-region-primitives branch July 16, 2026 16:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

performance-region-fingerprint Use the table region fingerprint performance profile

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants